package com.bone.user.dao;

import java.util.List;
import java.util.Map;

import com.bone.common.BaseIbatisDAO;
import com.bone.page.Page;
import com.bone.title.po.Title;
import com.bone.user.po.User;
import com.bone.vo.UserVO;


/**
 * DAO.
 * @author liwenzhan
 *
 */
public class UserDAO extends BaseIbatisDAO {

	
	/**
	 * 取符合查询条件的数据.
	 * @param parameter
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public Page<User> queryUserPageByParam(Map<String, Object> para,Page page){
		Long totalResultSize = (Long) getSqlMapClientTemplate().queryForObject("USER.queryByParamCount", para);
		page.setTotalResultSize(totalResultSize);				
		para.put("startRows", page.getStartRows());				
		para.put("endRows", page.getEndRows());
		page.setItems(getSqlMapClientTemplate().queryForList("USER.queryByParam", para));
		return page;
	}
	
	
	/**
	 * 取UserVO符合查询条件的数据.
	 * @param parameter
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public Page<UserVO> queryUserVOPageByParam(Map<String, Object> para,Page page){
		Long totalResultSize = (Long) getSqlMapClientTemplate().queryForObject("USER.queryUserVoByParamCount", para);
		page.setTotalResultSize(totalResultSize);				
		para.put("startRows", page.getStartRows());				
		para.put("endRows", page.getEndRows());
		para.put("_order", "user_id");
		page.setItems(getSqlMapClientTemplate().queryForList("USER.queryUserVoByParam", para));
		return page;
	}
	
	/**
	 * 取UserVO符合查询条件的数据.
	 * @param parameter
	 * @return
	 */
	public Long queryUserVOCountByParam(Map<String, Object> para){
		return (Long) getSqlMapClientTemplate().queryForObject("USER.queryUserVoByParamCount", para);
	}
	/**
	 * 
	 * @param para
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public List<UserVO> queryUserVOListByParam(Map<String, Object> para){
		return getSqlMapClientTemplate().queryForList("USER.queryUserVoByParam", para);
	}

	
	/**
	 * 
	 * @param userId
	 * @return
	 */
	public User queryUserById(Long userId){
		return (User)getSqlMapClientTemplate().queryForObject("USER.queryUserById",userId);
		
	}
	
	/**
	 * 取 UserReceive收货地址   符合查询条件的数据.
	 * @param parameter
	 * @return
	 */
//	@SuppressWarnings("unchecked")
//	public Page<UserReceive> queryUserReceivePageByParam(Map<String, Object> para,Page page){
//		Long totalResultSize = (Long) getSqlMapClientTemplate().queryForObject("USERRECEIVE.queryUserReceiveByParamCount", para);
//		page.setTotalResultSize(totalResultSize);				
//		para.put("startRows", page.getStartRows());				
//		para.put("endRows", page.getEndRows());
//		para.put("_order", "user_id");
//		page.setItems(getSqlMapClientTemplate().queryForList("USERRECEIVE.queryUserReceiveByParam", para));
//		return page;
//	}
}
